<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>计算器</title>
</head>
<body>
    <script>
        // 函数是一个复杂数据类型 typeof function  
        // 函数是一个工具  也叫方法 
        // 函数分为两种
        // 系统函数 比如 prompt()  alert()  
        // 自定义函数  当系统函数不满足我们的需求 我们可以自己定义函数

        //函数可以看做一个盒子 我们把相同功能的代码归纳出来放到盒子中 


        // 函数两个阶段 

        // 定义阶段 
        //function 函数名字(参数1,参数2,参数3) {  参数可以理解为 只在()内
            // 起作用的变量  参数可以不写  多个参数用逗号隔开
            // {}中是函数体
            //}

        // alert(10+10);
        // alert(10-10);
        // alert(10*10);
        // alert(100/10);
        // alert(10%3);

        // function add1(num1,num2){    // num1 num2 形参
        //     // console.log(num1+num2);
        //     document.write(num1);
        //     document.write(num2);

        // }

        

        // 调用阶段
        // add1(10,20); // 实际参数
        // 函数名();
        // add1()

        // var a = parseInt(prompt('请输入第一个数字'))
        // var b = parseInt(prompt('请输入第二个数字'))

        // add1(a,b)
        // alert(trans(100,'*',900))
        //声明式定义函数 
        function trans(num1,point,num2){
            switch(point){
                case '+':
                    return num1+num2;
                case '-':
                    return num1-num2;
                case '*':
                    return num1*num2;
                case '/':
                    return num1/num2;
            }
        }
        // alert(trans(1000,'*',9000))
        // var n1 = parseInt(prompt('请输入第一个数字'))
        // var p = prompt('请输入运算符')
        // var n2 = parseInt(prompt('请输入第二个数字'))

        // document.write(trans(n1,p,n2))


        // 赋值式定义函数 
        // alert(trans2(500,'*',200))
        var trans2 = function(num1,point,num2){ // function trans2(){}
        switch(point){
                case '+':
                    return num1+num2;
                case '-':
                    return num1-num2;
                case '*':
                    return num1*num2;
                case '/':
                    return num1/num2;
                default:
                    return '请输入正确的运算符'
            }
        }
        // alert(trans2(100,'*',300))

        // var n1 = parseInt(prompt('请输入第一个数字'))
        // var p = prompt('请输入运算符')
        // var n2 = parseInt(prompt('请输入第二个数字'))

        // document.write(trans2(n1,p,n2))

        
        // 声明式创建函数  可以在定义函数之前调用 也可以在定义之后调用
        // 赋值式子创建函数怒 调用的时候只能在函数之后调用 

        // 函数运行的结果可以赋值给一个变量 

        
        var n1 = parseInt(prompt('请输入第1个数字'))
        var p = prompt('请输入运算符')
        var n2 = parseInt(prompt('请输入第2个数字'))

        var res = trans2(n1,p,n2)

        alert(res);




    </script>
</body>
</html>